package com.wnxy.sddfp.sms;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * sms模板:
 *  *   RedisTemplate
 *  *   JDBCTemplate
 *  *   RabbitMQTemplate
 *  *   SMSTemplate
 *  *  Springboot的自动装配
 *  *   1、加载 自动装配的类
 *  *       @SpringBootApplication -> @EnableAutoConfiguration(开启自动装配) ->
 *  *                        @Import(AutoConfigurationImportSelector.class) (把对象提交到ioc容器中)
 *  *               AutoConfigurationImportSelector 这个类中会扫描自动装配
 *  *                      getCandidateConfigurations 这个方法 扫描 文件 META-INF/spring.factories （有自动装配的类）
 *  *                     回去加载 RedisAutoConfiguration这个类 （RedisTemplate 创建添加到ioc容器中）
 *  *                             mybatisAutoConfiguration这个类
 *  *   2、如何初始化 RedisTemplate
 *  *         1、 加 ConnectionConfiguration  连接对象 (都是用默认的配置)
 *  *            @EnableConfigurationProperties(RedisProperties.class) 加载 RedisProperties 类
 *  *               RedisProperties 这个类中读取了 yml中的配置
 *  *
 *  *               mybatisAutoConfiguration这个类 中默认要去加载 yaml中连接数据库的操作
 *  *         2、@Bean 方法进行对象初始化
 *  *           	        @Bean
 *                      * 	@ConditionalOnMissingBean(name = "redisTemplate")
 *                      * 	public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
 *                      * 			throws UnknownHostException {
 *                      * 		RedisTemplate<Object, Object> template = new RedisTemplate<>();
 *                      * 		template.setConnectionFactory(redisConnectionFactory);
 *                      * 		return     mplate;
 *                      * 	}
 */

@SpringBootApplication
public class SmsApplication {
    public static void main(String[] args) {
        SpringApplication.run(SmsApplication.class, args);
    }
}
